/** 
* @author : 褚国强
* @date 创建时间：2021年7月23日 上午9:59:12 
* @version 1.0
*/
package com.bsoft.project.swing;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.bsoft.project.controller.DzfpUploadController;
import com.bsoft.project.spring.SpringUtil;

/** 
* @author : 褚国强
* @date 创建时间：2021年7月23日 上午9:59:12 
* @Description: 电子发票上传窗口创建
* @version 1.0 
* @parameter 
* @since 
* @return 
*/
public class UploadWindow {
	
	private static final Logger logger = LogManager.getLogger(UploadWindow.class);
	
	public static void main(String[] args) {
		
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				UploadWindow.createAndShowGUI();
			}
		});
	}
	
	public static void createAndShowGUI() {
		
		JFrame jf = new JFrame("创业发票上传");
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		jf.setSize(898, 474);
		// 创建内容面板
		JPanel panel = new JPanel();

		// 表头（列名）
		String[] columnNames = { "类型", "发票号码", "收费日期", "票据代码", "票据号码", "备注信息", "失败次数" };

		// 表格所有行数据
		Object[][] rowData = { { "电子发票", "123131", "2021-07-02", 80, 80, "失败", 1 }};

		
		DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames); 
         
		// 创建一个表格，指定 表头 和 所有行数据
		JTable table = new JTable();

		table.setModel(tableModel);

		// 设置表格内容颜色
		table.setForeground(Color.BLACK); // 字体颜色
		table.setFont(new Font(null, Font.PLAIN, 14)); // 字体样式
		table.setSelectionForeground(Color.DARK_GRAY); // 选中后字体颜色
		table.setSelectionBackground(Color.LIGHT_GRAY); // 选中后字体背景
		table.setGridColor(Color.GRAY); // 网格颜色

		// 设置表头
		table.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式
		table.getTableHeader().setForeground(Color.RED); // 设置表头名称字体颜色
		table.getTableHeader().setResizingAllowed(true); // 设置允许手动改变列宽
		table.getTableHeader().setReorderingAllowed(false); // 设置不允许拖动重新排序各列

		// 设置行高
		table.setRowHeight(30);

		// 列宽设置
		setColumnWidth(table,0,15);
		setColumnWidth(table,1,45);
		setColumnWidth(table,2,40);
		setColumnWidth(table,3,40);
		setColumnWidth(table,4,40);
		setColumnWidth(table,5,300);
		setColumnWidth(table,6,20);
		
		panel.setLayout(null);

		// 设置滚动面板视口大小（超过该大小的行数据，需要拖动滚动条才能看到）
		table.setPreferredScrollableViewportSize(new Dimension(400, 300));

		// 把 表格 放到 滚动面板 中（表头将自动添加到滚动面板顶部）
		JScrollPane scrollPane = new JScrollPane(table);
		scrollPane.setBounds(26, 5, 831, 367);

		// 添加 滚动面板 到 内容面板
		panel.add(scrollPane);

		// 设置 内容面板 到 窗口
		jf.setContentPane(panel);
		
		JButton startUploadBtn = new JButton("开始上传");
		startUploadBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {	
				logger.info("------------------------------ 开始上传按钮click -----------------------start");
				
//				String msg = ((DzfpUploadController)SpringUtil.getBean("dzfpUploadController")).dzfpDailyReport().get("msg").toString();		
//				String msg = ((DzfpUploadController)SpringUtil.getBean("dzfpUploadController")).dzfpHisDailyReport().get("msg").toString();	
//				String msg = ((DzfpUploadController)SpringUtil.getBean("dzfpUploadController")).setEInvoiceInfoForEnter().get("msg").toString();	
//				String msg = ((DzfpUploadController)SpringUtil.getBean("dzfpUploadController")).setEInvoiceInfo().get("msg").toString();	
				String msg = ((DzfpUploadController)SpringUtil.getBean("dzfpUploadController")).rsfComIfsService(null).get("msg").toString();
				JOptionPane.showMessageDialog(null, msg, "测试", JOptionPane.PLAIN_MESSAGE);
				
				logger.info("------------------------------ 开始上传按钮click -----------------------end");
			}
		});
		startUploadBtn.setBounds(693, 390, 129, 23);
		panel.add(startUploadBtn);
		
		JButton uploadBtn = new JButton("手动上传");
		uploadBtn.setBounds(64, 390, 129, 23);
		panel.add(uploadBtn);

		jf.setLocationRelativeTo(null);
		jf.setVisible(true);
	}
	
	private static void setColumnWidth(JTable table,int colnum,int width){
		table.getColumnModel().getColumn(colnum).setPreferredWidth(width);
	}
}
